home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / CIncludes / QTML.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-17  |  4.9 KB  |  245 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        QTML.h
  3.  
  4.      Contains:    QuickTime Cross-platform specific interfaces
  5.  
  6.      Version:    Technology:    QuickTime 3.0
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1997-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __QTML__
  18. #define __QTML__
  19.  
  20. #ifndef __MACTYPES__
  21. #include <MacTypes.h>
  22. #endif
  23. #ifndef __MACMEMORY__
  24. #include <MacMemory.h>
  25. #endif
  26. #ifndef __MACWINDOWS__
  27. #include <MacWindows.h>
  28. #endif
  29. #ifndef __OSUTILS__
  30. #include <OSUtils.h>
  31. #endif
  32. #ifndef __FILES__
  33. #include <Files.h>
  34. #endif
  35.  
  36.  
  37.  
  38. #if PRAGMA_ONCE
  39. #pragma once
  40. #endif
  41.  
  42. #ifdef __cplusplus
  43. extern "C" {
  44. #endif
  45.  
  46. #if PRAGMA_IMPORT
  47. #pragma import on
  48. #endif
  49.  
  50. #if PRAGMA_STRUCT_ALIGN
  51.     #pragma options align=mac68k
  52. #elif PRAGMA_STRUCT_PACKPUSH
  53.     #pragma pack(push, 2)
  54. #elif PRAGMA_STRUCT_PACK
  55.     #pragma pack(2)
  56. #endif
  57.  
  58. EXTERN_API( void )
  59. QTMLYieldCPU                    (void);
  60.  
  61. EXTERN_API( void )
  62. QTMLYieldCPUTime                (long                     milliSeconds,
  63.                                  unsigned long             flags);
  64.  
  65. #if !TARGET_OS_MAC
  66. typedef long                             QTMLMutex;
  67. typedef struct OpaqueQTMLSyncVar*         QTMLSyncVar;
  68. typedef QTMLSyncVar *                    QTMLSyncVarPtr;
  69.  
  70. enum {
  71.     kInitializeQTMLNoSoundFlag    = (1L << 0),                    /* flag for requesting no sound when calling InitializeQTML*/
  72.     kInitializeQTMLUseGDIFlag    = (1L << 1)                        /* flag for requesting GDI when calling InitializeQTML*/
  73. };
  74.  
  75.  
  76. enum {
  77.     kQTMLHandlePortEvents        = (1L << 0),                    /* flag for requesting requesting QTML to handle events*/
  78.     kQTMLNoIdleEvents            = (1L << 1)                        /* flag for requesting requesting QTML not to send Idle Events*/
  79. };
  80.  
  81. EXTERN_API( OSErr )
  82. InitializeQTML                    (long                     flag);
  83.  
  84. EXTERN_API( void )
  85. TerminateQTML                    (void);
  86.  
  87. EXTERN_API( GrafPtr )
  88. CreatePortAssociation            (void *                    theWnd,
  89.                                  Ptr                     storage,
  90.                                  long                     flags);
  91.  
  92. EXTERN_API( void )
  93. DestroyPortAssociation            (CGrafPtr                 cgp);
  94.  
  95. EXTERN_API( void )
  96. QTMLGrabMutex                    (QTMLMutex                 mu);
  97.  
  98. EXTERN_API( void )
  99. QTMLReturnMutex                    (QTMLMutex                 mu);
  100.  
  101. EXTERN_API( QTMLMutex )
  102. QTMLCreateMutex                    (void);
  103.  
  104. EXTERN_API( void )
  105. QTMLDestroyMutex                (QTMLMutex                 mu);
  106.  
  107. EXTERN_API( QTMLSyncVarPtr )
  108. QTMLCreateSyncVar                (void);
  109.  
  110. EXTERN_API( void )
  111. QTMLDestroySyncVar                (QTMLSyncVarPtr         p);
  112.  
  113. EXTERN_API( long )
  114. QTMLTestAndSetSyncVar            (QTMLSyncVarPtr         sync);
  115.  
  116. EXTERN_API( void )
  117. QTMLWaitAndSetSyncVar            (QTMLSyncVarPtr         sync);
  118.  
  119. EXTERN_API( void )
  120. QTMLResetSyncVar                (QTMLSyncVarPtr         sync);
  121.  
  122. EXTERN_API( void )
  123. InitializeQHdr                    (QHdr *                    qhdr);
  124.  
  125. EXTERN_API( void )
  126. TerminateQHdr                    (QHdr *                    qhdr);
  127.  
  128. EXTERN_API( void )
  129. QTMLAcquireWindowList            (void);
  130.  
  131. EXTERN_API( void )
  132. QTMLReleaseWindowList            (void);
  133.  
  134. /*
  135.    These routines are here to support "interrupt level" code
  136.       These are dangerous routines, only use if you know what you are doing.
  137. */
  138.  
  139. EXTERN_API( long )
  140. QTMLRegisterInterruptSafeThread    (unsigned long             threadID,
  141.                                  void *                    threadInfo);
  142.  
  143. EXTERN_API( long )
  144. QTMLUnregisterInterruptSafeThread (unsigned long         threadID);
  145.  
  146. EXTERN_API( long )
  147. NativeEventToMacEvent            (void *                    nativeEvent,
  148.                                  EventRecord *            macEvent);
  149.  
  150. #if TARGET_OS_WIN32
  151. EXTERN_API( long )
  152. WinEventToMacEvent                (void *                    winMsg,
  153.                                  EventRecord *            macEvent);
  154.  
  155. #define WinEventToMacEvent    NativeEventToMacEvent
  156. EXTERN_API( Boolean )
  157. IsTaskBarVisible                (void);
  158.  
  159. EXTERN_API( void )
  160. ShowHideTaskBar                    (Boolean                 showIt);
  161.  
  162.  
  163. enum {
  164.     kDDSurfaceLocked            = (1L << 0),
  165.     kDDSurfaceStatic            = (1L << 1)
  166. };
  167.  
  168. EXTERN_API( OSErr )
  169. QTGetDDObject                    (void **                lpDDObject);
  170.  
  171. EXTERN_API( OSErr )
  172. QTSetDDObject                    (void *                    lpNewDDObject);
  173.  
  174. EXTERN_API( OSErr )
  175. QTSetDDPrimarySurface            (void *                    lpNewDDSurface,
  176.                                  unsigned long             flags);
  177.  
  178. EXTERN_API( OSErr )
  179. QTMLGetVolumeRootPath            (char *                    fullPath,
  180.                                  char *                    volumeRootPath,
  181.                                  unsigned long             volumeRootLen);
  182.  
  183. EXTERN_API( void )
  184. QTMLSetWindowWndProc            (WindowPtr                 theWindow,
  185.                                  void *                    windowProc);
  186.  
  187. EXTERN_API( void *)
  188. QTMLGetWindowWndProc            (WindowPtr                 theWindow);
  189.  
  190. #endif  /* TARGET_OS_WIN32 */
  191.  
  192. EXTERN_API( OSErr )
  193. QTMLGetCanonicalPathName        (char *                    inName,
  194.                                  char *                    outName,
  195.                                  unsigned long             outLen);
  196.  
  197.  
  198. enum {
  199.     kFullNativePath                = 0,
  200.     kFileNameOnly                = (1 << 0),
  201.     kDirectoryPathOnly            = (1 << 1)
  202. };
  203.  
  204. EXTERN_API( OSErr )
  205. FSSpecToNativePathName            (const FSSpec *            inFile,
  206.                                  char *                    outName,
  207.                                  unsigned long             outLen,
  208.                                  long                     flags);
  209.  
  210. EXTERN_API( OSErr )
  211. NativePathNameToFSSpec            (char *                    inName,
  212.                                  FSSpec *                outFile,
  213.                                  long                     flags);
  214.  
  215. #endif  /* !TARGET_OS_MAC */
  216.  
  217. #if TARGET_OS_MAC
  218.  
  219. #define QTMLYieldCPU()
  220. #define QTMLYieldCPUTime(a,b)
  221.  
  222. #endif  /* TARGET_OS_MAC */
  223.  
  224.  
  225. #if PRAGMA_STRUCT_ALIGN
  226.     #pragma options align=reset
  227. #elif PRAGMA_STRUCT_PACKPUSH
  228.     #pragma pack(pop)
  229. #elif PRAGMA_STRUCT_PACK
  230.     #pragma pack()
  231. #endif
  232.  
  233. #ifdef PRAGMA_IMPORT_OFF
  234. #pragma import off
  235. #elif PRAGMA_IMPORT
  236. #pragma import reset
  237. #endif
  238.  
  239. #ifdef __cplusplus
  240. }
  241. #endif
  242.  
  243. #endif /* __QTML__ */
  244.  
  245.